(eval-last-sexp): Fix bug#71774
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 27 Jun 2024 18:39:27 +0000 (14:39 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 27 Jun 2024 18:43:32 +0000 (14:43 -0400)
* lisp/progmodes/elisp-mode.el (eval-last-sexp): Set `values` only
when `eval-expression-debug-on-error` is nil.

lisp/progmodes/elisp-mode.el

index 7d0312eb2a45b441e34403fdec003a85fe21aa5d..9bf6f9217c86b4e0edf86fa50064d8208349f329 100644 (file)
@@ -1633,7 +1633,10 @@ integer value is also printed as a character of that codepoint.
 If `eval-expression-debug-on-error' is non-nil, which is the default,
 this command arranges for all errors to enter the debugger."
   (interactive "P")
-  (values--store-value
+  (funcall
+   ;; Not sure why commit 4428c27c1ae7d stored into `values' only when
+   ;; `eval-expression-debug-on-error' was nil, but let's preserve that.
+   (if eval-expression-debug-on-error #'identity #'values--store-value)
    (handler-bind ((error (if eval-expression-debug-on-error
                              #'eval-expression--debug #'ignore)))
      (elisp--eval-last-sexp eval-last-sexp-arg-internal))))